package com.cn.dim.wx;

import net.sf.json.JSONObject;

/**
 * @author：张雁佳
 * @time：2018-12-25 
 * @todo：微信模块工具类
 */
public class WxTools 
{
	/**
	 * 作用：推送消息（类型为即时消息）
	 * 参数：消息内容、openid
	 * 更新时间：2017-10-08
	 */
	public static void sendInstantMessage(String content,String openid) 
	{
		//获取token
		String appId = ConstWx.appId;
		String secret = ConstWx.secret;
		AccessToken accessToken = WeChatUtils.getAccessToken(appId, secret);
		String token=accessToken.getToken();
		System.out.println("token的值是："+token);
		
		//发送即时消息
		String URL="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";
		String url=URL.replace("ACCESS_TOKEN", token);

		JSONObject jsobj1 = new JSONObject();
		JSONObject jsobj2 = new JSONObject();
		
		jsobj2.put("content", content);
		jsobj1.put("touser",openid);
		jsobj1.put("msgtype", "text");
		
		jsobj1.put("text", jsobj2);
		//System.out.println(jsobj1);
		
		WeChatUtils.PostSendMsg(jsobj1, url);
	}
	
	/**
	 * 作用：推送带有链接的即时消息
	 * 参数：消息内容、openid、actionURL
	 * 更新时间：2017-10-19
	 */
	public static void sendInstantMessageWithActionURL(String title,String description,String openid,String actionURL) 
	{
		//获取token
		String appId = ConstWx.appId;
		String secret = ConstWx.secret;
		AccessToken accessToken = WeChatUtils.getAccessToken(appId, secret);
		String token=accessToken.getToken();
		System.out.println("token的值是："+token);
		
		//发送即时消息
		String URL="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";
		String url=URL.replace("ACCESS_TOKEN", token);

		JSONObject jsobj1 = new JSONObject();
		JSONObject jsobj2 = new JSONObject();
		
		jsobj2.put("title", title);
		jsobj2.put("description", description);
		jsobj2.put("url", actionURL);
		
		jsobj1.put("touser",openid);
		jsobj1.put("msgtype", "link");
		
		jsobj1.put("link", jsobj2);
		
		System.out.println(jsobj1);
		
		WeChatUtils.PostSendMsg(jsobj1, url);
	}
	
	/**
	 * 作用：推送消息（类型为模版消息）
	 * 参数：openid与待定
	 * 更新时间：2017-10-08
	 */
	public static void sendTemplateMessage(String openid) 
	{
		//获取token
		String appId = ConstWx.appId;
		String secret = ConstWx.secret;
		AccessToken accessToken = WeChatUtils.getAccessToken(appId, secret);
		String token=accessToken.getToken();
		System.out.println("token的值是："+token);
		
		//发送模版消息
		String URL="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
		String url=URL.replace("ACCESS_TOKEN", token);
		
		JSONObject jsobj1 = new JSONObject();
		JSONObject jsobj2 = new JSONObject();
		JSONObject jsobj3 = new JSONObject();
		JSONObject jsobj4 = new JSONObject();
		JSONObject jsobj5 = new JSONObject();
		JSONObject jsobj6 = new JSONObject();
		JSONObject jsobj7 = new JSONObject();
		JSONObject jsobj8 = new JSONObject();
		
		jsobj1.put("touser", openid);//写入openid
		jsobj1.put("template_id", "******");//写入template_id
		jsobj1.put("url", "******");//模版消息中的“点击查看详情”

		jsobj3.put("value", "******");//按照模版定义中的内容填写
		jsobj3.put("color", "#173177");
		jsobj2.put("first", jsobj3);

		jsobj4.put("value", "******");//按照模版定义中的内容填写
		jsobj4.put("color", "#173177");
		jsobj2.put("keyword1", jsobj4);

		jsobj5.put("value", "******");//按照模版定义中的内容填写
		jsobj5.put("color", "#173177");
		jsobj2.put("keyword2", jsobj5);

		jsobj6.put("value", "******");//按照模版定义中的内容填写
		jsobj6.put("color", "#173177");
		jsobj2.put("keyword3", jsobj6);

		jsobj7.put("value", "******");//按照模版定义中的内容填写
		jsobj7.put("color", "#173177");
		jsobj2.put("keyword4", jsobj7);

		jsobj8.put("value", "点击获取二维码");
		jsobj8.put("color", "#173177");
		jsobj2.put("remark", jsobj8);

		jsobj1.put("data", jsobj2);
		System.out.println(jsobj1);
		
		WeChatUtils.PostSendMsg(jsobj1, url);
	}
}
